package com.zkthink.ceres.order.dto.comment;

import com.zkthink.base.entity.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 评价表
 * </p>
 *
 * @author JustArgo
 * @since 2020-07-12
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "CommentUpdateDTO", description = "评价表")
public class CommentUpdateDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @NotNull(message = "id不能为空", groups = SuperEntity.Update.class)
    private Long id;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @NotNull(message = "用户id不能为空")
    private Long mid;
    /**
     * 订单商品id
     */
    @ApiModelProperty(value = "订单商品id")
    @NotNull(message = "订单商品id不能为空")
    private Long orderProductId;
    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    @NotNull(message = "商品id不能为空")
    private Long productId;
    /**
     * 描述相符评分 1 - 5 星级数
     */
    @ApiModelProperty(value = "描述相符评分 1 - 5 星级数")
    @NotNull(message = "描述相符评分 1 - 5 星级数不能为空")
    private Integer descStar;
    /**
     * 物流评分
     */
    @ApiModelProperty(value = "物流评分")
    @NotNull(message = "物流评分不能为空")
    private Integer logisticsStar;
    /**
     * 服务态度评分
     */
    @ApiModelProperty(value = "服务态度评分")
    @NotNull(message = "服务态度评分不能为空")
    private Integer serviceStar;
    /**
     * 主评分 
     */
    @ApiModelProperty(value = "主评分 ")
    @NotNull(message = "主评分 不能为空")
    private Integer commentStar;
    /**
     * 评论内容
     */
    @ApiModelProperty(value = "评论内容")
    @NotEmpty(message = "评论内容不能为空")
    @Length(max = 1024, message = "评论内容长度不能超过1024")
    private String commentText;
    /**
     * 评论类型 1-评价 2-追评
     */
    @ApiModelProperty(value = "评论类型 1-评价 2-追评")
    @NotNull(message = "评论类型 1-评价 2-追评不能为空")
    private Integer bizType;
    /**
     * 评论图片
     */
    @ApiModelProperty(value = "评论图片")
    @NotEmpty(message = "评论图片不能为空")
    @Length(max = 4096, message = "评论图片长度不能超过4096")
    private String commentImgs;
    /**
     * 是否拥有图片
     */
    @ApiModelProperty(value = "是否拥有图片")
    @NotNull(message = "是否拥有图片不能为空")
    private Boolean commentImgsFlag;
    /**
     * 点赞数
     */
    @ApiModelProperty(value = "点赞数")
    @NotNull(message = "点赞数不能为空")
    private Integer likeNum;
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    @NotNull(message = "店铺id不能为空")
    private Long storeId;
    /**
     * 是否隐藏 1-隐藏 0-不隐藏
     */
    @ApiModelProperty(value = "是否隐藏 1-隐藏 0-不隐藏")
    @NotNull(message = "是否隐藏 1-隐藏 0-不隐藏不能为空")
    private Boolean hideFlag;
    /**
     * 是否包含敏感词 1-包含 0-不包含
     */
    @ApiModelProperty(value = "是否包含敏感词 1-包含 0-不包含")
    @NotNull(message = "是否包含敏感词 1-包含 0-不包含不能为空")
    private Boolean sensitiveFlag;
    /**
     * 是否删除 1-删除 0-不删除
     */
    @ApiModelProperty(value = "是否删除 1-删除 0-不删除")
    @NotNull(message = "是否删除 1-删除 0-不删除不能为空")
    private Boolean isDelete;
}
